How to Use Godot's Signals
https://www.youtube.com/watch?v=NK_SYVO7lMA&list=PLhqJJNjsQ7KEcm-iYJ2a8UCRN62bTneKa&index=9
Button Node がわかりやすいSignal機能を持っている
button_down, button_up, pressed
ボタンが押された時に他のNodeに何か処理をさせたい場合は、Signalをその別nodeへConnectし、on_button_down() のようなレシーバーメソッドを追加して実装する
Timer Nodeは timeout Signalを持っている
動画では、コードの中で timer オブジェクトをGetし、動的に connect して レシーバーメソッドを紐付けている
この場合、文字列でレシーバーメソッドを紐付けているのが少し気になった
メソッド名のリネームした時に文字列を変え忘れてミッシングエラーになりそうだ
カスタムSignalを作成できる
Scriptの中で、signal シグナル名(引数)で宣言し、emit_signal する
このカスタムSignalを、他のNodeがレシーブして処理を実行できる
日本語で解説されているsignalの参考記事
公式ドキュメント
同一 SceneTree内でシグナルを送受信する場合は、エディタ上で接続するだけでOK
シーンやインスタンスをまたぐ場合は、スクリプトでつなげる
受信側のスクリプトで、シグナル送信インスタンス.connect("シグナル名", self, "実行先関数")等でつなげる必要がある
カスタムSignalの場合は、送信側が emit_signal をする